type If<C extends boolean, T, F> = C extends true ? T : F;

type ifA = If<true, 'a', 'b'>; // 'a'
type ifB = If<false, 'a', 2>; // 2
type error = If<null, 'a', 'b'> // 第一个不是数组，报错


